/**  
* @Title: SessionManager.java
* @Package com.hjb.service.config.session
* @author <a href="mailto:125671254@qq.com">Pan Xinwen</a>panxinwen
* @date 2018年1月12日 下午6:01:53
* @version V1.0  
*/ 
package com.hjb.service.config.session;

import java.util.UUID;
import java.util.concurrent.TimeUnit;

import javax.servlet.http.HttpSession;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

/**
* @ClassName: SessionManager
* @Description: TODO(session管理器 暂时放在本地，如果多点部署的话可以存储到redis中)
* @author <a href="mailto:125671254@qq.com">Pan Xinwen</a>panxinwen
* @date 2018年1月12日 下午6:01:53
*
*/
public abstract class SessionManager {
    /**
     *
     * @param key
     * @param <T>
     * @return
     */
    public static <T> T getAttribute(SessionKey key) {
        return (T) getRequestSession().getAttribute(key.name());
    }

    private static HttpSession getRequestSession() {
        return ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getSession();
    }

    public static <T> void setAttribute(SessionKey key, T t) {
        getRequestSession().setAttribute(key.name(), t);
    }

    /**
     * <p>removeAttribute.</p>
     *
     * @param key a {@link com.SessionKey.admin.session.SessionKey} object.
     */
    public static void removeAttribute(SessionKey key) {
        getRequestSession().removeAttribute(key.name());
    }

    public static void main(String[] args) {
    	
	}
    
}
